Result: fail
Detail | Value |
---|---|
Returncode | 1 |
Time | 0:00:00.304814 |
Stdout |
Output v[0].a element 0: expected 100.000000, got -107374176.000000 Output v[0].a element 1: expected 200.000000, got -107374176.000000 Output v[0].a element 2: expected 300.000000, got -107374176.000000 Output v[0].a element 3: expected 400.000000, got -107374176.000000 Output v[0].b element 0: expected 500, got -858993460 Output v[0].b element 1: expected 600, got -858993460 Output v[0].b element 2: expected 700, got -858993460 Output v[0].c element 0: expected 800, got -858993460 Output v[0].c element 1: expected 900, got -858993460 Output v[1].a element 0: expected 101.000000, got -107374176.000000 Output v[1].a element 1: expected 201.000000, got -107374176.000000 Output v[1].a element 2: expected 301.000000, got -107374176.000000 Output v[1].a element 3: expected 401.000000, got -107374176.000000 Output v[1].b element 0: expected 501, got -858993460 Output v[1].b element 1: expected 601, got -858993460 Output v[1].b element 2: expected 701, got -858993460 Output v[1].c element 0: expected 801, got -858993460 Output v[1].c element 1: expected 901, got -858993460 Output v[2].a element 0: expected 102.000000, got -107374176.000000 Output v[2].a element 1: expected 202.000000, got -107374176.000000 Output v[2].a element 2: expected 302.000000, got -107374176.000000 Output v[2].a element 3: expected 402.000000, got -107374176.000000 Output v[2].b element 0: expected 502, got -858993460 Output v[2].b element 1: expected 602, got -858993460 Output v[2].b element 2: expected 702, got -858993460 Output v[2].c element 0: expected 802, got -858993460 Output v[2].c element 1: expected 902, got -858993460 Vertex shader: #version 150 #define DECLARE_VARYING(DIR, TYPE, NAME) DIR Blk { flat TYPE NAME; } blk #define VARYING(NAME) blk.NAME struct S { mat2 a; ivec3 b; uvec2 c; }; in vec4 pos; DECLARE_VARYING(out, S[3], v); void main() { gl_Position = pos; for (int i = 0; i < 3; i++) { VARYING(v)[i].a = mat2(100.0, 200.0, 300.0, 400.0) + float(i); VARYING(v)[i].b = ivec3(500, 600, 700) + i; VARYING(v)[i].c = uvec2(800, 900) + uint(i); } } Fragment shader: #version 150 #define DECLARE_VARYING(DIR, TYPE, NAME) DIR Blk { flat TYPE NAME; } blk #define VARYING(NAME) blk.NAME struct S { mat2 a; ivec3 b; uvec2 c; }; DECLARE_VARYING(in, S[3], v); out vec4 color; void main() { bool pass = true; for (int i = 0; i < 3; i++) { if (VARYING(v)[i].a != mat2(100.0, 200.0, 300.0, 400.0) + float(i)) pass = false; if (VARYING(v)[i].b != ivec3(500, 600, 700) + i) pass = false; if (VARYING(v)[i].c != uvec2(800, 900) + uint(i)) pass = false; } if (pass) color = vec4(0.0, 1.0, 0.0, 1.0); else color = vec4(1.0, 0.0, 0.0, 1.0); } |
Stderr |
SWR detected AVX2 vert shader 0x7fa0ad026000 frag shader 0x7fa0ad024000 vert shader 0x7fa0ad022000 frag shader 0x7fa0ad020000 so shader 0x7fa0ad01e000 fetch shader 0x7fa0ad01c000 SWR destroy screen! |
Environment |
PIGLIT_SOURCE_DIR="/home/ilia/src/piglit" PIGLIT_PLATFORM="mixed_glx_egl" |
Command | /home/ilia/src/piglit/bin/ext_transform_feedback-structs array-struct run interface -auto -fbo |
dmesg |